Commit 23a476d4 authored by Matteo F. Vescovi's avatar Matteo F. Vescovi

Imported Upstream version 0.5.3

parent c287f6e4
......@@ -10,6 +10,7 @@ With further contributions received from:
Cristian Marchi <cri.penta@gmail.com>
Daniel Berrange <dan@berrange.com>
Daniel P. Berrange <dan@berrange.com>
Jesper Pedersen <jesper.pedersen@comcast.net>
Jesper Pedersen <jesper.pedersen@jboss.org>
Simon Booth <simon.booth@giric.com>
Thilo Bangert <thilo@bangert.dk>
......
2013-08-28 Daniel P. Berrange <berrange@redhat.com>
Update for 0.5.3 release
Add note about release naming scheme
Hookup to readonly control state changes
Connect the frontend controls to the notify::readonly signal
to ensure that readonly state changes are propagated to the
UI controls
2013-08-27 Daniel P. Berrange <dan@berrange.com>
Fix thread safety of control update
The refresh of values for controls often runs in background
threads. This causes thread safety issues for the GTK controls
which connect to signals in this controls.
Fix variable names in EntangleImage class
s/picker/image/ in several methods
Fix memory leak in pixbuf loader
Previous commit fad10008099e015aba3bacc383345a210519bdbd
fixed a double unref in one scenario, but introduced a
memory leak in another scenario. The unref must be moved
inside the 'if (dest == src)' block to fix both problems.
2013-08-24 Daniel P. Berrange <dan@berrange.com>
Remove Encoding key from desktop file
The Encoding key is no longer required in desktop files, since
they are mandated to all use UTF-8
Fixes bug #20419
Switch to use gsettings autoconf rule
Switch to using the GLIB_GSETTINGS autoconf rule to create
the make rules. This adds a '--disable-schemas-compile'
arg to configure, which distro packagers should utilize.
Fixes bug #20223
2013-08-22 Daniel P. Berrange <berrange@redhat.com>
Re-position tooltip over items
Ensure the tooltip positions itself over the item that it
is related to
2013-08-22 Jesper Pedersen <jesper.pedersen@comcast.net>
Remove unused adjust_wrap_width method
The adjust_wrap_width method in the session browser no
longer does anything useful, since the filename was
removed. Delete the code.
Move file name to tooltip
To allow more room for the image, remove the filename from
the session browser and use a tooltip instead.
2013-08-17 Daniel P. Berrange <berrange@redhat.com>
Update to 0.5.2 release
......
......@@ -255,6 +255,7 @@ GPHOTO2_CFLAGS = @GPHOTO2_CFLAGS@
GPHOTO2_LIBS = @GPHOTO2_LIBS@
GPHOTO2_REQUIRED = @GPHOTO2_REQUIRED@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTHREAD_REQUIRED = @GTHREAD_REQUIRED@
......@@ -371,6 +372,7 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gsettingsschemadir = @gsettingsschemadir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
......
Entangle News
=============
Release 0.5.3 - "Photon" - 2013-08-28
--------------------------------------
* Move file name of image thumbnails to tooltip popup
* Add --disable-schemas-compile configure arg to
disable schema compilation
* Remove "Encoding" key from desktop file
* Fix massive memory leak in pixbuf loading
* Fix thread safety in camera control updates which caused
hangs in GTK
* Fix updating of control readonly state when camera modes
change
Release 0.5.2 - "Graviton" - 2013-08-17
--------------------------------------
* Split histogram into RGB colour channels
* Fix aperture / shutter speed calculations in status bar
......@@ -25,6 +41,7 @@ Release 0.5.2 - "Graviton" - 2013-08-17
Release 0.5.1 - "W Boson" - 2012-03-12
--------------------------------------
* Update for compatibility with libgphoto 2.5 API
callbacks
......
......@@ -31,6 +31,10 @@ variable to point to the data directory, eg in the above example use:
XDG_DATA_DIRS=/usr/share:/usr/local/share:$HOME/libvirt-sandbox/share
export XDG_DATA_DIRS
OS distro packagers should use the --disable-schemas-compile arg
to configure to skip the compilation stage for schema files if
installing to the /usr prefix
Building entangle requires the following external packages to
be present
......
......@@ -457,6 +457,90 @@ sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
fi])
dnl GLIB_GSETTINGS
dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether
dnl the schema should be compiled
dnl
AC_DEFUN([GLIB_GSETTINGS],
[
m4_pattern_allow([AM_V_GEN])
AC_ARG_ENABLE(schemas-compile,
AS_HELP_STRING([--disable-schemas-compile],
[Disable regeneration of gschemas.compiled on install]),
[case ${enableval} in
yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;;
no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;;
esac])
AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE])
PKG_PROG_PKG_CONFIG([0.16])
AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas])
if test x$cross_compiling != xyes; then
GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
else
AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
fi
AC_SUBST(GLIB_COMPILE_SCHEMAS)
if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2])
else
ifelse([$1],,[:],[$1])
fi
GSETTINGS_RULES='
.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
mostlyclean-am: clean-gsettings-schemas
gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
$(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@
all-am: $(gsettings_SCHEMAS:.xml=.valid)
uninstall-am: uninstall-gsettings-schemas
install-data-am: install-gsettings-schemas
.SECONDARY: $(gsettings_SCHEMAS)
install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
@$(NORMAL_INSTALL)
if test -n "$^"; then \
test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
$(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
fi
uninstall-gsettings-schemas:
@$(NORMAL_UNINSTALL)
@list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
test -n "$$files" || exit 0; \
echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
clean-gsettings-schemas:
rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
ifdef gsettings_ENUM_NAMESPACE
$(gsettings__enum_file): $(gsettings_ENUM_FILES)
$(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
endif
'
_GSETTINGS_SUBST(GSETTINGS_RULES)
])
dnl _GSETTINGS_SUBST(VARIABLE)
dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
AC_DEFUN([_GSETTINGS_SUBST],
[
AC_SUBST([$1])
m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
]
)
# nls.m4 serial 5 (gettext-0.18)
dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation,
dnl Inc.
......
This diff is collapsed.
dnl Process this file with autoconf to produce a configure script.
AC_INIT([entangle], [0.5.2])
AC_INIT([entangle], [0.5.3])
AC_CONFIG_SRCDIR([src/entangle-main.c])
AM_CONFIG_HEADER([config.h])
dnl Make automake keep quiet about wildcards & other GNUmake-isms
......@@ -65,14 +65,6 @@ PKG_CHECK_MODULES([GIO], [glib-2.0 >= $GIO_REQUIRED])
AC_SUBST(GIO_CFLAGS)
AC_SUBST(GIO_LIBS)
AC_MSG_CHECKING([for glib-compile-schemas])
AC_SUBST([GLIB_COMPILE_SCHEMAS], [$($PKG_CONFIG --variable=glib_compile_schemas gio-2.0)])
if [ test -n "$GLIB_COMPILE_SCHEMAS" ]; then
AC_MSG_RESULT([$GLIB_COMPILE_SCHEMAS])
else
AC_MSG_ERROR([The $GLIB_COMPILE_SCHEMAS binary must be installed before building entangle])
fi
PKG_CHECK_MODULES([GMODULE], [gmodule-2.0 >= $GLIB_REQUIRED])
AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS)
......@@ -130,6 +122,7 @@ if test "$have_xext" = "yes"; then
AC_DEFINE_UNQUOTED([HAVE_XEXT], [], [Use Xext library])
fi
GLIB_GSETTINGS
GTK_DOC_CHECK([1.10],[--flavour no-tmpl])
......
......@@ -231,6 +231,7 @@ GPHOTO2_CFLAGS = @GPHOTO2_CFLAGS@
GPHOTO2_LIBS = @GPHOTO2_LIBS@
GPHOTO2_REQUIRED = @GPHOTO2_REQUIRED@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTHREAD_REQUIRED = @GTHREAD_REQUIRED@
......@@ -347,6 +348,7 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gsettingsschemadir = @gsettingsschemadir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
......
......@@ -231,6 +231,7 @@ GPHOTO2_CFLAGS = @GPHOTO2_CFLAGS@
GPHOTO2_LIBS = @GPHOTO2_LIBS@
GPHOTO2_REQUIRED = @GPHOTO2_REQUIRED@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTHREAD_REQUIRED = @GTHREAD_REQUIRED@
......@@ -347,6 +348,7 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gsettingsschemadir = @gsettingsschemadir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
......
......@@ -202,6 +202,7 @@ GPHOTO2_CFLAGS = @GPHOTO2_CFLAGS@
GPHOTO2_LIBS = @GPHOTO2_LIBS@
GPHOTO2_REQUIRED = @GPHOTO2_REQUIRED@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTHREAD_REQUIRED = @GTHREAD_REQUIRED@
......@@ -318,6 +319,7 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gsettingsschemadir = @gsettingsschemadir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
......
......@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "ENTANGLE 1"
.TH ENTANGLE 1 "2013-08-17" "entangle-0.5.2" "User Commands"
.TH ENTANGLE 1 "2013-08-28" "entangle-0.5.3" "User Commands"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
......
......@@ -178,6 +178,7 @@ GPHOTO2_CFLAGS = @GPHOTO2_CFLAGS@
GPHOTO2_LIBS = @GPHOTO2_LIBS@
GPHOTO2_REQUIRED = @GPHOTO2_REQUIRED@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTHREAD_REQUIRED = @GTHREAD_REQUIRED@
......@@ -294,6 +295,7 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gsettingsschemadir = @gsettingsschemadir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
......
......@@ -2,7 +2,7 @@
Summary: Tethered shooting & control of digital cameras
Name: entangle
Version: 0.5.2
Version: 0.5.3
Release: 1%{?dist}%{?extra_release}
License: GPLv3+
Group: Applications/Multimedia
......@@ -39,15 +39,14 @@ and 'hands off' shooting directly from the controlling computer.
%build
%configure
%configure --disable-schemas-compile
make %{?_smp_mflags} V=1
%install
rm -fr %{buildroot}
%makeinstall
make install DESTDIR=$RPM_BUILD_ROOT
rm -rf %{buildroot}%{_datadir}/%{name}/website
rm -f %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled
%find_lang %{name}
%clean
......
......@@ -39,15 +39,14 @@ and 'hands off' shooting directly from the controlling computer.
%build
%configure
%configure --disable-schemas-compile
make %{?_smp_mflags} V=1
%install
rm -fr %{buildroot}
%makeinstall
make install DESTDIR=$RPM_BUILD_ROOT
rm -rf %{buildroot}%{_datadir}/%{name}/website
rm -f %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled
%find_lang %{name}
%clean
......
SUBDIRS = icons
GITIGNOREFILES = org.entangle-photo.manager.gschema.valid
noinst_LTLIBRARIES = libentangle_backend.la libentangle_frontend.la
bin_PROGRAMS = entangle
......@@ -22,8 +24,9 @@ desktop_DATA = entangle.desktop
icondir = $(pkgdatadir)
icon_DATA = $(PACKAGE).svg $(wildcard *.png)
gsettingsdir = $(datadir)/glib-2.0/schemas
gsettings_DATA = org.entangle-photo.manager.gschema.xml
gsettings_SCHEMAS = org.entangle-photo.manager.gschema.xml
@GSETTINGS_RULES@
iccdir = $(pkgdatadir)
icc_DATA = sRGB.icc
......@@ -35,7 +38,7 @@ BUILT_SOURCES = \
frontend/entangle-image-display-enums.c \
$(NULL)
EXTRA_DIST = $(builder_DATA) $(desktop_DATA_IN) $(icon_DATA) $(icc_DATA) $(gsettings_DATA)
EXTRA_DIST = $(builder_DATA) $(desktop_DATA_IN) $(icon_DATA) $(icc_DATA) $(gsettings_SCHEMAS)
libentangle_backend_la_SOURCES = \
backend/entangle-camera.h backend/entangle-camera.c \
......@@ -267,18 +270,12 @@ install-data-local:
$(MKDIR_P) $(DESTDIR)$(libdir)/entangle/plugins
$(MKDIR_P) $(DESTDIR)$(datadir)/entangle/plugins
install-data-hook:
$(AM_V_GEN)$(GLIB_COMPILE_SCHEMAS) $(DESTDIR)$(gsettingsdir)
uninstall-local::
rmdir $(DESTDIR)$(libdir)/entangle/plugins ||:
rmdir $(DESTDIR)$(libdir)/entangle ||:
rmdir $(DESTDIR)$(datadir)/entangle/plugins ||:
rmdir $(DESTDIR)$(datadir)/entangle ||:
uninstall-hook:
$(AM_V_GEN)$(GLIB_COMPILE_SCHEMAS) $(DESTDIR)$(gsettingsdir)
Entangle-0.1.gir: entangle $(G_IR_SCANNER) Makefile.am
$(AM_V_GEN)$(G_IR_SCANNER) -v --quiet \
--namespace Entangle \
......
......@@ -161,8 +161,8 @@ libentangle_frontend_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libentangle_frontend_la_LDFLAGS) $(LDFLAGS) -o $@
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderdir)" \
"$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(gsettingsdir)" "$(DESTDIR)$(iccdir)" \
"$(DESTDIR)$(icondir)" "$(DESTDIR)$(typelibsdir)"
"$(DESTDIR)$(iccdir)" "$(DESTDIR)$(icondir)" \
"$(DESTDIR)$(typelibsdir)"
PROGRAMS = $(bin_PROGRAMS)
am_entangle_OBJECTS = entangle-entangle-main.$(OBJEXT)
entangle_OBJECTS = $(am_entangle_OBJECTS)
......@@ -248,8 +248,8 @@ am__uninstall_files_from_dir = { \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
DATA = $(builder_DATA) $(desktop_DATA) $(gir_DATA) $(gsettings_DATA) \
$(icc_DATA) $(icon_DATA) $(typelibs_DATA)
DATA = $(builder_DATA) $(desktop_DATA) $(gir_DATA) $(icc_DATA) \
$(icon_DATA) $(typelibs_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
......@@ -361,6 +361,7 @@ GPHOTO2_CFLAGS = @GPHOTO2_CFLAGS@
GPHOTO2_LIBS = @GPHOTO2_LIBS@
GPHOTO2_REQUIRED = @GPHOTO2_REQUIRED@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTHREAD_REQUIRED = @GTHREAD_REQUIRED@
......@@ -477,6 +478,7 @@ datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gsettingsschemadir = @gsettingsschemadir@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
......@@ -508,6 +510,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = icons
GITIGNOREFILES = org.entangle-photo.manager.gschema.valid
noinst_LTLIBRARIES = libentangle_backend.la libentangle_frontend.la
builderdir = $(pkgdatadir)
builder_DATA = \
......@@ -524,8 +527,7 @@ desktop_DATA_IN = entangle.desktop.in
desktop_DATA = entangle.desktop
icondir = $(pkgdatadir)
icon_DATA = $(PACKAGE).svg $(wildcard *.png)
gsettingsdir = $(datadir)/glib-2.0/schemas
gsettings_DATA = org.entangle-photo.manager.gschema.xml
gsettings_SCHEMAS = org.entangle-photo.manager.gschema.xml
iccdir = $(pkgdatadir)
icc_DATA = sRGB.icc
BUILT_SOURCES = \
......@@ -535,7 +537,7 @@ BUILT_SOURCES = \
frontend/entangle-image-display-enums.c \
$(NULL)
EXTRA_DIST = $(builder_DATA) $(desktop_DATA_IN) $(icon_DATA) $(icc_DATA) $(gsettings_DATA)
EXTRA_DIST = $(builder_DATA) $(desktop_DATA_IN) $(icon_DATA) $(icc_DATA) $(gsettings_SCHEMAS)
libentangle_backend_la_SOURCES = \
backend/entangle-camera.h backend/entangle-camera.c \
backend/entangle-camera-file.h backend/entangle-camera-file.c \
......@@ -1218,27 +1220,6 @@ uninstall-girDATA:
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-gsettingsDATA: $(gsettings_DATA)
@$(NORMAL_INSTALL)
@list='$(gsettings_DATA)'; test -n "$(gsettingsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(gsettingsdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(gsettingsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gsettingsdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(gsettingsdir)" || exit $$?; \
done
uninstall-gsettingsDATA:
@$(NORMAL_UNINSTALL)
@list='$(gsettings_DATA)'; test -n "$(gsettingsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(gsettingsdir)'; $(am__uninstall_files_from_dir)
install-iccDATA: $(icc_DATA)
@$(NORMAL_INSTALL)
@list='$(icc_DATA)'; test -n "$(iccdir)" || list=; \
......@@ -1463,7 +1444,7 @@ check: $(BUILT_SOURCES)
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(gsettingsdir)" "$(DESTDIR)$(iccdir)" "$(DESTDIR)$(icondir)" "$(DESTDIR)$(typelibsdir)"; do \
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(builderdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(iccdir)" "$(DESTDIR)$(icondir)" "$(DESTDIR)$(typelibsdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
......@@ -1523,10 +1504,9 @@ info: info-recursive
info-am:
install-data-am: install-builderDATA install-data-local \
install-desktopDATA install-girDATA install-gsettingsDATA \
install-iccDATA install-iconDATA install-typelibsDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-desktopDATA install-girDATA install-iccDATA \
install-iconDATA install-typelibsDATA
install-dvi: install-dvi-recursive
install-dvi-am:
......@@ -1572,13 +1552,11 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-builderDATA \
uninstall-desktopDATA uninstall-girDATA \
uninstall-gsettingsDATA uninstall-iccDATA uninstall-iconDATA \
uninstall-local uninstall-typelibsDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
uninstall-desktopDATA uninstall-girDATA uninstall-iccDATA \
uninstall-iconDATA uninstall-local uninstall-typelibsDATA
.MAKE: $(am__recursive_targets) all check install install-am \
install-data-am install-strip uninstall-am
install-strip
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
check-am clean clean-binPROGRAMS clean-generic clean-libtool \
......@@ -1586,10 +1564,9 @@ uninstall-am: uninstall-binPROGRAMS uninstall-builderDATA \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-binPROGRAMS install-builderDATA \
install-data install-data-am install-data-hook \
install-data-local install-desktopDATA install-dvi \
install-dvi-am install-exec install-exec-am install-girDATA \
install-gsettingsDATA install-html install-html-am \
install-data install-data-am install-data-local \
install-desktopDATA install-dvi install-dvi-am install-exec \
install-exec-am install-girDATA install-html install-html-am \
install-iccDATA install-iconDATA install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip install-typelibsDATA installcheck \
......@@ -1598,9 +1575,11 @@ uninstall-am: uninstall-binPROGRAMS uninstall-builderDATA \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
uninstall-builderDATA uninstall-desktopDATA uninstall-girDATA \
uninstall-gsettingsDATA uninstall-hook uninstall-iccDATA \
uninstall-iconDATA uninstall-local uninstall-typelibsDATA
uninstall-iccDATA uninstall-iconDATA uninstall-local \
uninstall-typelibsDATA
@GSETTINGS_RULES@
%.desktop: $(srcdir)/%.desktop.in
$(AM_V_GEN)sed -e "s,::PACKAGE::,$(PACKAGE),g" -e "s,::DATADIR::,$(datadir),g" < $< > $@
......@@ -1693,18 +1672,12 @@ install-data-local:
$(MKDIR_P) $(DESTDIR)$(libdir)/entangle/plugins
$(MKDIR_P) $(DESTDIR)$(datadir)/entangle/plugins
install-data-hook:
$(AM_V_GEN)$(GLIB_COMPILE_SCHEMAS) $(DESTDIR)$(gsettingsdir)
uninstall-local::
rmdir $(DESTDIR)$(libdir)/entangle/plugins ||:
rmdir $(DESTDIR)$(libdir)/entangle ||:
rmdir $(DESTDIR)$(datadir)/entangle/plugins ||:
rmdir $(DESTDIR)$(datadir)/entangle ||:
uninstall-hook:
$(AM_V_GEN)$(GLIB_COMPILE_SCHEMAS) $(DESTDIR)$(gsettingsdir)
Entangle-0.1.gir: entangle $(G_IR_SCANNER) Makefile.am
$(AM_V_GEN)$(G_IR_SCANNER) -v --quiet \
--namespace Entangle \
......
......@@ -1834,6 +1834,12 @@ static gboolean entangle_str_equal_null(gchar *a, gchar *b)
}
/*
* XXX this method causes signals to be emitted from controls
* in non-main threads, if triggered via an _async() method.
* Investigate if we can fix this to always run in main thread
* to simplify thread safety for GTK frontend
*/
static gboolean do_load_controls(EntangleCamera *cam,
const char *path,
CameraWidget *widget,
......
......@@ -80,8 +80,8 @@ static void entangle_image_set_property(GObject *object,
const GValue *value,
GParamSpec *pspec)
{
EntangleImage *picker = ENTANGLE_IMAGE(object);
EntangleImagePrivate *priv = picker->priv;
EntangleImage *image = ENTANGLE_IMAGE(object);
EntangleImagePrivate *priv = image->priv;
switch (prop_id)
{
......@@ -192,11 +192,11 @@ EntangleImage *entangle_image_new_pixbuf(GdkPixbuf *pixbuf)
}
static void entangle_image_init(EntangleImage *picker)
static void entangle_image_init(EntangleImage *image)
{
EntangleImagePrivate *priv;
priv = picker->priv = ENTANGLE_IMAGE_GET_PRIVATE(picker);
priv = image->priv = ENTANGLE_IMAGE_GET_PRIVATE(image);
priv->dirty = TRUE;
}
......
......@@ -36,6 +36,9 @@ GdkPixbuf *entangle_pixbuf_auto_rotate(GdkPixbuf *src,
if (dest == src) {
int transform = 0;
g_object_unref(dest);
if (metadata) {
transform = gexiv2_metadata_get_orientation(metadata);
} else {
......
......@@ -6,6 +6,5 @@ Icon=::DATADIR::/::PACKAGE::/::PACKAGE::.svg
Exec=::PACKAGE::
Type=Application
Terminal=false
Encoding=UTF-8
Categories=Graphics;GTK;
StartupNotify=true
......@@ -3043,7 +3043,7 @@ static void entangle_camera_manager_init(EntangleCameraManager *manager)
gtk_container_add(GTK_CONTAINER(priv->imageScroll), imageViewport);
priv->imageLoader = entangle_image_loader_new();
priv->thumbLoader = entangle_thumbnail_loader_new(96, 96);
priv->thumbLoader = entangle_thumbnail_loader_new(140, 140);
g_signal_connect(priv->imageLoader, "pixbuf-loaded", G_CALLBACK(do_pixbuf_loaded), NULL);
g_signal_connect(priv->imageLoader, "metadata-loaded", G_CALLBACK(do_metadata_loaded), NULL);
......
......@@ -92,21 +92,28 @@ static void do_update_control_finish(GObject *src,
}
static void do_refresh_control_entry(GObject *object,
GParamSpec *pspec G_GNUC_UNUSED,
gpointer data)
static gboolean do_refresh_control_entry_idle(gpointer data)
{
GtkWidget *widget = GTK_WIDGET(data);
GObject *control = g_object_get_data(G_OBJECT(widget), "control");
gchar *text;
g_object_get(object, "value", &text, NULL);
g_object_get(control, "value", &text, NULL);
if (GTK_IS_LABEL(widget))
gtk_label_set_text(GTK_LABEL(widget), text);
else
gtk_entry_set_text(GTK_ENTRY(widget), text);
g_free(text);
return FALSE;
}
static void do_refresh_control_entry(GObject *object G_GNUC_UNUSED,
GParamSpec *pspec G_GNUC_UNUSED,
gpointer data)
{
g_idle_add(do_refresh_control_entry_idle, data);
}
static void do_update_control_entry(GtkWidget *widget,
GdkEventFocus *ev G_GNUC_UNUSED,
......@@ -131,14 +138,13 @@ static void do_update_control_entry(GtkWidget *widget,
}
static void do_refresh_control_range(GObject *object,
GParamSpec *pspec G_GNUC_UNUSED,
gpointer data)
static gboolean do_refresh_control_range_idle(gpointer data)
{
GtkWidget *widget = GTK_WIDGET(data);
GObject *control = g_object_get_data(G_OBJECT(widget), "control");
gfloat val;
g_object_get(object, "value", &val, NULL);
g_object_get(control, "value", &val, NULL);
if (GTK_IS_LABEL(widget)) {
gchar *text = g_strdup_printf("%0.02f", val);
gtk_label_set_text(GTK_LABEL(widget), text);
......@@ -146,6 +152,16 @@ static void do_refresh_control_range(GObject *object,
} else {
gtk_range_set_value(GTK_RANGE(widget), val);
}
return FALSE;
}
static void do_refresh_control_range(GObject *object G_GNUC_UNUSED,
GParamSpec *pspec G_GNUC_UNUSED,
gpointer data)
{
g_idle_add(do_refresh_control_range_idle, data);
}
......@@ -170,26 +186,35 @@ static void do_update_control_range(GtkRange *widget G_GNUC_UNUSED,
}
static void do_refresh_control_combo(GObject *object,
GParamSpec *pspec G_GNUC_UNUSED,
gpointer data)
static gboolean do_refresh_control_combo_idle(gpointer data)
{
GtkWidget *widget = GTK_WIDGET(data);
GObject *control = g_object_get_data(G_OBJECT(widget), "control");
gchar *text;
g_object_get(object, "value", &text, NULL);
g_object_get(control, "value", &text, NULL);
if (GTK_IS_LABEL(widget)) {
gtk_label_set_text(GTK_LABEL(widget), text);
} else {
int active = 0;
for (int n = 0 ; n < entangle_control_choice_entry_count(ENTANGLE_CONTROL_CHOICE(object)) ; n++) {
if (g_strcmp0(text, entangle_control_choice_entry_get(ENTANGLE_CONTROL_CHOICE(object), n)) == 0)
for (int n = 0 ; n < entangle_control_choice_entry_count(ENTANGLE_CONTROL_CHOICE(control)) ; n++) {
if (g_strcmp0(text, entangle_control_choice_entry_get(ENTANGLE_CONTROL_CHOICE(control), n)) == 0)
active = n;
}
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), active);