Hello community, here is the log from the commit of package gnome-photos for openSUSE:Factory checked in at 2015-11-11 10:31:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-photos (Old) and /work/SRC/openSUSE:Factory/.gnome-photos.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-photos" Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-photos/gnome-photos.changes 2015-10-26 12:47:48.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.gnome-photos.new/gnome-photos.changes 2015-11-11 10:35:32.000000000 +0100 @@ -1,0 +2,8 @@ +Sun Nov 8 19:11:52 UTC 2015 - [email protected] + +- Update to version 3.18.2: + + Bugs fixed: bgo#734766, bgo#747446, bgo#751106, bgo#756133, + bgo#757015, bgo#757199. + + Updated translations. + +------------------------------------------------------------------- Old: ---- gnome-photos-3.18.1.tar.xz New: ---- gnome-photos-3.18.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-photos.spec ++++++ --- /var/tmp/diff_new_pack.orhA9w/_old 2015-11-11 10:35:33.000000000 +0100 +++ /var/tmp/diff_new_pack.orhA9w/_new 2015-11-11 10:35:33.000000000 +0100 @@ -17,7 +17,7 @@ Name: gnome-photos -Version: 3.18.1 +Version: 3.18.2 Release: 0 Summary: Photo viewer for GNOME License: GPL-3.0+ ++++++ gnome-photos-3.18.1.tar.xz -> gnome-photos-3.18.2.tar.xz ++++++ ++++ 3204 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/NEWS new/gnome-photos-3.18.2/NEWS --- old/gnome-photos-3.18.1/NEWS 2015-10-12 12:24:54.000000000 +0200 +++ new/gnome-photos-3.18.2/NEWS 2015-11-08 18:59:05.000000000 +0100 @@ -1,3 +1,18 @@ +Overview of changes in 3.18.2 +============================= + +* Bugs fixed: + 734766 properties-dialog: Be more forgiving of unknown nmm:flash values + 747446 gegl-gtk-view, gegl-gtk-view-helper: Fix HiDpi rendering + 751106 Make favorite button's icon retain the active color + 756133 view-model: Stop listening to info-updated when an item is removed + 757015 Improve the responsiveness of the favorite button + 757199 Crash when quitting due to the ViewModel outliving the Embed + +* Updated translations: + Portuguese + + Overview of changes in 3.18.1 ============================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/config/compile new/gnome-photos-3.18.2/config/compile --- old/gnome-photos-3.18.1/config/compile 2015-10-12 12:26:17.000000000 +0200 +++ new/gnome-photos-3.18.2/config/compile 2015-11-08 19:00:27.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/config/missing new/gnome-photos-3.18.2/config/missing --- old/gnome-photos-3.18.1/config/missing 2015-10-12 12:26:17.000000000 +0200 +++ new/gnome-photos-3.18.2/config/missing 2015-11-08 19:00:27.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/configure.ac new/gnome-photos-3.18.2/configure.ac --- old/gnome-photos-3.18.1/configure.ac 2015-10-12 12:24:54.000000000 +0200 +++ new/gnome-photos-3.18.2/configure.ac 2015-11-08 18:48:50.000000000 +0100 @@ -1,5 +1,5 @@ AC_INIT([Photos], - [3.18.1], + [3.18.2], [https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-photos], [gnome-photos], [https://wiki.gnome.org/Apps/Photos]) @@ -148,6 +148,11 @@ AX_REQUIRE_DEFINED([YELP_HELP_INIT]) YELP_HELP_INIT +# work around intltool-update issues during 'make distcheck' +AS_IF([test "x$0" != "x./configure"], [ + AC_SUBST([INTLTOOL_UPDATE], [/bin/true]) +]) + AC_CONFIG_FILES([ Makefile data/Makefile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/data/Adwaita.css new/gnome-photos-3.18.2/data/Adwaita.css --- old/gnome-photos-3.18.1/data/Adwaita.css 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/data/Adwaita.css 2015-11-08 18:41:38.000000000 +0100 @@ -104,8 +104,7 @@ background-image: url("sidebar-radio-selected-prelight.svg"); } -.photos-favorite.button:active, -.photos-favorite.button:active:hover { +.photos-favorite.button { color: shade(@theme_selected_bg_color, 1.20); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/git.mk new/gnome-photos-3.18.2/git.mk --- old/gnome-photos-3.18.1/git.mk 2014-05-27 14:34:16.000000000 +0200 +++ new/gnome-photos-3.18.2/git.mk 1970-01-01 01:00:00.000000000 +0100 @@ -1,285 +0,0 @@ -# git.mk -# -# Copyright 2009, Red Hat, Inc. -# Copyright 2010,2011,2012,2013 Behdad Esfahbod -# Written by Behdad Esfahbod -# -# Copying and distribution of this file, with or without modification, -# is permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. -# -# The latest version of this file can be downloaded from: -# https://raw.github.com/behdad/git.mk/master/git.mk -# Bugs, etc, should be reported upstream at: -# https://github.com/behdad/git.mk -# -# To use in your project, import this file in your git repo's toplevel, -# then do "make -f git.mk". This modifies all Makefile.am files in -# your project to -include git.mk. Remember to add that line to new -# Makefile.am files you create in your project, or just rerun the -# "make -f git.mk". -# -# This enables automatic .gitignore generation. If you need to ignore -# more files, add them to the GITIGNOREFILES variable in your Makefile.am. -# But think twice before doing that. If a file has to be in .gitignore, -# chances are very high that it's a generated file and should be in one -# of MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, or MAINTAINERCLEANFILES. -# -# The only case that you need to manually add a file to GITIGNOREFILES is -# when remove files in one of mostlyclean-local, clean-local, distclean-local, -# or maintainer-clean-local make targets. -# -# Note that for files like editor backup, etc, there are better places to -# ignore them. See "man gitignore". -# -# If "make maintainer-clean" removes the files but they are not recognized -# by this script (that is, if "git status" shows untracked files still), send -# me the output of "git status" as well as your Makefile.am and Makefile for -# the directories involved and I'll diagnose. -# -# For a list of toplevel files that should be in MAINTAINERCLEANFILES, see -# Makefile.am.sample in the git.mk git repo. -# -# Don't EXTRA_DIST this file. It is supposed to only live in git clones, -# not tarballs. It serves no useful purpose in tarballs and clutters the -# build dir. -# -# This file knows how to handle autoconf, automake, libtool, gtk-doc, -# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu. -# -# This makefile provides the following targets: -# -# - all: "make all" will build all gitignore files. -# - gitignore: makes all gitignore files in the current dir and subdirs. -# - .gitignore: make gitignore file for the current dir. -# - gitignore-recurse: makes all gitignore files in the subdirs. -# -# KNOWN ISSUES: -# -# - Recursive configure doesn't work as $(top_srcdir)/git.mk inside the -# submodule doesn't find us. If you have configure.{in,ac} files in -# subdirs, add a proxy git.mk file in those dirs that simply does: -# "include $(top_srcdir)/../git.mk". Add more ..'s to your taste. -# And add those files to git. See vte/gnome-pty-helper/git.mk for -# example. -# - - - -############################################################################### -# Variables user modules may want to add to toplevel MAINTAINERCLEANFILES: -############################################################################### - -# -# Most autotools-using modules should be fine including this variable in their -# toplevel MAINTAINERCLEANFILES: -GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL = \ - $(srcdir)/aclocal.m4 \ - $(srcdir)/ar-lib \ - $(srcdir)/autoscan.log \ - $(srcdir)/compile \ - $(srcdir)/config.guess \ - $(srcdir)/config.h.in \ - $(srcdir)/config.sub \ - $(srcdir)/configure.scan \ - $(srcdir)/depcomp \ - $(srcdir)/install-sh \ - $(srcdir)/ltmain.sh \ - $(srcdir)/missing \ - $(srcdir)/mkinstalldirs -# -# All modules should also be fine including the following variable, which -# removes automake-generated Makefile.in files: -GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN = \ - `$(AUTOCONF) --trace 'AC_CONFIG_FILES:$$1' $(srcdir)/configure.ac | \ - while read f; do \ - case $$f in Makefile|*/Makefile) \ - test -f "$(srcdir)/$$f.am" && echo "$(srcdir)/$$f.in";; esac; \ - done` -# -# Modules that use libtool /and/ use AC_CONFIG_MACRO_DIR([m4]) may also -# include this: -GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL = \ - $(srcdir)/m4/libtool.m4 \ - $(srcdir)/m4/ltoptions.m4 \ - $(srcdir)/m4/ltsugar.m4 \ - $(srcdir)/m4/ltversion.m4 \ - $(srcdir)/m4/lt~obsolete.m4 - - - -############################################################################### -# Default rule is to install ourselves in all Makefile.am files: -############################################################################### - -git-all: git-mk-install - -git-mk-install: - @echo "Installing git makefile" - @any_failed=; \ - find "`test -z "$(top_srcdir)" && echo . || echo "$(top_srcdir)"`" -name Makefile.am | while read x; do \ - if grep 'include .*/git.mk' $$x >/dev/null; then \ - echo "$$x already includes git.mk"; \ - else \ - failed=; \ - echo "Updating $$x"; \ - { cat $$x; \ - echo ''; \ - echo '-include $$(top_srcdir)/git.mk'; \ - } > $$x.tmp || failed=1; \ - if test x$$failed = x; then \ - mv $$x.tmp $$x || failed=1; \ - fi; \ - if test x$$failed = x; then : else \ - echo "Failed updating $$x"; >&2 \ - any_failed=1; \ - fi; \ - fi; done; test -z "$$any_failed" - -.PHONY: git-all git-mk-install - - - -############################################################################### -# Actual .gitignore generation: -############################################################################### - -$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk - @echo "git.mk: Generating $@" - @{ \ - if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \ - for x in \ - $(DOC_MODULE)-decl-list.txt \ - $(DOC_MODULE)-decl.txt \ - tmpl/$(DOC_MODULE)-unused.sgml \ - "tmpl/*.bak" \ - xml html \ - ; do echo "/$$x"; done; \ - fi; \ - if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \ - for lc in $(DOC_LINGUAS); do \ - for x in \ - $(if $(DOC_MODULE),$(DOC_MODULE).xml) \ - $(DOC_PAGES) \ - $(DOC_INCLUDES) \ - ; do echo "/$$lc/$$x"; done; \ - done; \ - for x in \ - $(_DOC_OMF_ALL) \ - $(_DOC_DSK_ALL) \ - $(_DOC_HTML_ALL) \ - $(_DOC_MOFILES) \ - $(DOC_H_FILE) \ - "*/.xml2po.mo" \ - "*/*.omf.out" \ - ; do echo /$$x; done; \ - fi; \ - if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; else \ - for lc in $(HELP_LINGUAS); do \ - for x in \ - $(HELP_FILES) \ - "$$lc.stamp" \ - "$$lc.mo" \ - ; do echo "/$$lc/$$x"; done; \ - done; \ - fi; \ - if test "x$(gsettings_SCHEMAS)" = x; then :; else \ - for x in \ - $(gsettings_SCHEMAS:.xml=.valid) \ - $(gsettings__enum_file) \ - ; do echo "/$$x"; done; \ - fi; \ - if test -f $(srcdir)/po/Makefile.in.in; then \ - for x in \ - po/Makefile.in.in \ - po/Makefile.in \ - po/Makefile \ - po/POTFILES \ - po/stamp-it \ - po/.intltool-merge-cache \ - "po/*.gmo" \ - "po/*.mo" \ - po/$(GETTEXT_PACKAGE).pot \ - intltool-extract.in \ - intltool-merge.in \ - intltool-update.in \ - ; do echo "/$$x"; done; \ - fi; \ - if test -f $(srcdir)/configure; then \ - for x in \ - autom4te.cache \ - configure \ - config.h \ - stamp-h1 \ - libtool \ - config.lt \ - ; do echo "/$$x"; done; \ - fi; \ - if test "x$(DEJATOOL)" = x; then :; else \ - for x in \ - $(DEJATOOL) \ - ; do echo "/$$x.sum"; echo "/$$x.log"; done; \ - echo /site.exp; \ - fi; \ - if test "x$(am__dirstamp)" = x; then :; else \ - echo "$(am__dirstamp)"; \ - fi; \ - if test "x$(LTCOMPILE)" = x; then :; else \ - for x in \ - "*.lo" \ - ".libs" "_libs" \ - ; do echo "$$x"; done; \ - fi; \ - for x in \ - .gitignore \ - $(GITIGNOREFILES) \ - $(CLEANFILES) \ - $(PROGRAMS) $(check_PROGRAMS) $(EXTRA_PROGRAMS) \ - $(LIBRARIES) $(check_LIBRARIES) $(EXTRA_LIBRARIES) \ - $(LTLIBRARIES) $(check_LTLIBRARIES) $(EXTRA_LTLIBRARIES) \ - so_locations \ - $(MOSTLYCLEANFILES) \ - "*.$(OBJEXT)" \ - $(DISTCLEANFILES) \ - $(am__CONFIG_DISTCLEAN_FILES) \ - $(CONFIG_CLEAN_FILES) \ - TAGS ID GTAGS GRTAGS GSYMS GPATH tags \ - "*.tab.c" \ - $(MAINTAINERCLEANFILES) \ - $(BUILT_SOURCES) \ - $(DEPDIR) \ - Makefile \ - Makefile.in \ - "*.orig" \ - "*.rej" \ - "*.bak" \ - "*~" \ - ".*.sw[nop]" \ - ".dirstamp" \ - ; do echo "/$$x"; done; \ - } | \ - sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \ - sed 's@/[.]/@/@g' | \ - LC_ALL=C sort | uniq > [email protected] && \ - mv [email protected] $@; - -all: $(srcdir)/.gitignore gitignore-recurse-maybe -gitignore: $(srcdir)/.gitignore gitignore-recurse - -gitignore-recurse-maybe: - @for subdir in $(DIST_SUBDIRS); do \ - case " $(SUBDIRS) " in \ - *" $$subdir "*) :;; \ - *) test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse-maybe || echo "Skipping $$subdir");; \ - esac; \ - done -gitignore-recurse: - @for subdir in $(DIST_SUBDIRS); do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse || echo "Skipping $$subdir"); \ - done - -maintainer-clean: gitignore-clean -gitignore-clean: - -rm -f $(srcdir)/.gitignore - -.PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/m4/intltool.m4 new/gnome-photos-3.18.2/m4/intltool.m4 --- old/gnome-photos-3.18.1/m4/intltool.m4 2015-10-12 12:26:05.000000000 +0200 +++ new/gnome-photos-3.18.2/m4/intltool.m4 2015-11-08 19:00:13.000000000 +0100 @@ -155,31 +155,6 @@ # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) -# Set DATADIRNAME correctly if it is not set yet -# (copied from glib-gettext.m4) -if test -z "$DATADIRNAME"; then - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], - [[extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr]])], - [DATADIRNAME=share], - [case $host in - *-*-solaris*) - dnl On Solaris, if bind_textdomain_codeset is in libc, - dnl GNU format message catalog is always supported, - dnl since both are added to the libc all together. - dnl Hence, we'd like to go with DATADIRNAME=share - dnl in this case. - AC_CHECK_FUNC(bind_textdomain_codeset, - [DATADIRNAME=share], [DATADIRNAME=lib]) - ;; - *) - [DATADIRNAME=lib] - ;; - esac]) -fi -AC_SUBST(DATADIRNAME) - IT_PO_SUBDIR([po]) ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/po/Makefile.in.in new/gnome-photos-3.18.2/po/Makefile.in.in --- old/gnome-photos-3.18.1/po/Makefile.in.in 2015-10-12 12:26:05.000000000 +0200 +++ new/gnome-photos-3.18.2/po/Makefile.in.in 2015-11-08 19:00:13.000000000 +0100 @@ -33,8 +33,7 @@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ -DATADIRNAME = @DATADIRNAME@ -itlocaledir = $(prefix)/$(DATADIRNAME)/locale +localedir = @localedir@ subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. @@ -80,7 +79,7 @@ .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox + $(MSGMERGE) $* $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< @@ -108,7 +107,7 @@ install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ - dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ + dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ @@ -142,8 +141,8 @@ uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/po/pt.po new/gnome-photos-3.18.2/po/pt.po --- old/gnome-photos-3.18.1/po/pt.po 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/po/pt.po 2015-11-08 18:41:38.000000000 +0100 @@ -344,8 +344,7 @@ #. Translators: Put your names here #: ../src/photos-main-window.c:483 msgid "translator-credits" -msgstr "" -"António Lima <[email protected]>\n" +msgstr "António Lima <[email protected]>\n" "Pedro Albuquerque <[email protected]>" #: ../src/photos-menus.ui.h:1 @@ -621,7 +620,7 @@ #: ../src/photos-tracker-controller.c:97 msgid "Unable to fetch the list of photos" -msgstr "Impossível obter a lista de fotos" +msgstr "Impossível obter a lista de fotografias" #~ msgid "No Favorites Found" #~ msgstr "Nenhum favorito encontrado" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/gegl-gtk-view-helper.c new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.c --- old/gnome-photos-3.18.1/src/gegl-gtk-view-helper.c 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.c 2015-11-08 18:41:47.000000000 +0100 @@ -83,6 +83,7 @@ self->x = 0; self->y = 0; self->scale = 1.0; + self->scale_factor = 1; self->autoscale_policy = GEGL_GTK_VIEW_AUTOSCALE_CONTENT; self->block = FALSE; @@ -137,10 +138,12 @@ float delta_x; float delta_y; float scale = 1.0; + const gint real_viewport_height = viewport.height * self->scale_factor; + const gint real_viewport_width = viewport.width * self->scale_factor; - if (bbox.width > viewport.width || bbox.height > viewport.height) { - float width_ratio = bbox.width / (float)viewport.width; - float height_ratio = bbox.height / (float)viewport.height; + if (bbox.width > real_viewport_width || bbox.height > real_viewport_height) { + float width_ratio = bbox.width / (float)real_viewport_width; + float height_ratio = bbox.height / (float)real_viewport_height; float max_ratio = width_ratio >= height_ratio ? width_ratio : height_ratio; scale = 1.0 / max_ratio; @@ -152,8 +155,8 @@ self->scale = scale; /* At this point, viewport is definitely bigger than bbox. */ - delta_x = (viewport.width - bbox.width) / 2.0; - delta_y = (viewport.height - bbox.height) / 2.0; + delta_x = (real_viewport_width - bbox.width) / 2.0; + delta_y = (real_viewport_height - bbox.height) / 2.0; self->x = -delta_x; self->y = -delta_y; } @@ -194,10 +197,10 @@ gint64 end; gint64 start; - roi.x = self->x + rect->x; - roi.y = self->y + rect->y; - roi.width = rect->width; - roi.height = rect->height; + roi.x = (gint) self->x + rect->x * self->scale_factor; + roi.y = (gint) self->y + rect->y * self->scale_factor; + roi.width = rect->width * self->scale_factor; + roi.height = rect->height * self->scale_factor; stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, roi.width); buf = g_malloc0(stride * roi.height); @@ -219,6 +222,7 @@ CAIRO_FORMAT_ARGB32, roi.width, roi.height, stride); + cairo_surface_set_device_scale (surface, (gdouble) self->scale_factor, (gdouble) self->scale_factor); cairo_set_source_surface(cr, surface, rect->x, rect->y); cairo_paint(cr); @@ -228,9 +232,10 @@ } void -view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation) +view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation, gint scale_factor) { self->widget_allocation = *allocation; + self->scale_factor = scale_factor; update_autoscale(self); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/gegl-gtk-view-helper.h new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.h --- old/gnome-photos-3.18.1/src/gegl-gtk-view-helper.h 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/src/gegl-gtk-view-helper.h 2015-11-08 18:41:47.000000000 +0100 @@ -45,6 +45,7 @@ gfloat x; gfloat y; gdouble scale; + gint scale_factor; gboolean block; /* blocking render */ GeglGtkViewAutoscale autoscale_policy; @@ -63,7 +64,7 @@ ViewHelper *view_helper_new(void); void view_helper_draw(ViewHelper *self, cairo_t *cr, GdkRectangle *rect); -void view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation); +void view_helper_set_allocation(ViewHelper *self, GdkRectangle *allocation, gint scale_factor); void view_helper_set_node(ViewHelper *self, GeglNode *node); GeglNode *view_helper_get_node(ViewHelper *self); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/gegl-gtk-view.c new/gnome-photos-3.18.2/src/gegl-gtk-view.c --- old/gnome-photos-3.18.1/src/gegl-gtk-view.c 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/src/gegl-gtk-view.c 2015-11-08 18:41:47.000000000 +0100 @@ -363,7 +363,10 @@ size_allocate(GtkWidget *widget, GdkRectangle *allocation, gpointer user_data) { GeglGtkView *self = GEGL_GTK_VIEW(widget); - view_helper_set_allocation(GET_PRIVATE(self), allocation); + gint scale_factor; + + scale_factor = gtk_widget_get_scale_factor (widget); + view_helper_set_allocation(GET_PRIVATE(self), allocation, scale_factor); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-base-item.c new/gnome-photos-3.18.2/src/photos-base-item.c --- old/gnome-photos-3.18.1/src/photos-base-item.c 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-base-item.c 2015-11-08 18:43:12.000000000 +0100 @@ -184,13 +184,13 @@ static GIcon * -photos_base_item_create_symbolic_emblem (const gchar *name) +photos_base_item_create_symbolic_emblem (const gchar *name, gint scale) { GIcon *pix; gint size; - size = photos_utils_get_icon_size (); - pix = photos_utils_create_symbolic_icon (name, size); + size = photos_utils_get_icon_size_unscaled (); + pix = photos_utils_create_symbolic_icon_for_scale (name, size, scale); if (pix == NULL) pix = g_themed_icon_new (name); @@ -214,11 +214,14 @@ if (priv->original_icon == NULL) goto out; + app = g_application_get_default (); + scale = photos_application_get_scale_factor (PHOTOS_APPLICATION (app)); + emblemed_pixbuf = g_object_ref (priv->original_icon); if (priv->favorite) { - pix = photos_base_item_create_symbolic_emblem (PHOTOS_ICON_FAVORITE); + pix = photos_base_item_create_symbolic_emblem (PHOTOS_ICON_FAVORITE, scale); emblem_icons = g_list_prepend (emblem_icons, pix); } @@ -291,8 +294,6 @@ else thumbnailed_pixbuf = g_object_ref (emblemed_pixbuf); - app = g_application_get_default (); - scale = photos_application_get_scale_factor (PHOTOS_APPLICATION (app)); windows = gtk_application_get_windows (GTK_APPLICATION (app)); if (windows != NULL) window = gtk_widget_get_window (GTK_WIDGET (windows->data)); @@ -404,7 +405,14 @@ static void photos_base_item_default_set_favorite (PhotosBaseItem *self, gboolean favorite) { - photos_utils_set_favorite (self->priv->id, favorite); + PhotosBaseItemPrivate *priv = self->priv; + + if (favorite == priv->favorite) + return; + + priv->favorite = favorite; + photos_base_item_check_effects_and_update_info (self); + photos_utils_set_favorite (priv->id, favorite); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-embed.c new/gnome-photos-3.18.2/src/photos-embed.c --- old/gnome-photos-3.18.1/src/photos-embed.c 2015-10-12 12:24:54.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-embed.c 2015-11-08 18:41:38.000000000 +0100 @@ -681,28 +681,28 @@ name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER (priv->overview)); gtk_stack_add_titled (GTK_STACK (priv->stack), priv->overview, "overview", name); model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->overview)); - g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self); - g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self); + g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); + g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); priv->collections = photos_view_container_new (PHOTOS_WINDOW_MODE_COLLECTIONS, _("Albums")); name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER (priv->collections)); gtk_stack_add_titled (GTK_STACK (priv->stack), priv->collections, "collections", name); model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->collections)); - g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self); - g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self); + g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); + g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); priv->favorites = photos_view_container_new (PHOTOS_WINDOW_MODE_FAVORITES, _("Favorites")); name = photos_view_container_get_name (PHOTOS_VIEW_CONTAINER (priv->favorites)); gtk_stack_add_titled (GTK_STACK (priv->stack), priv->favorites, "favorites", name); model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->favorites)); - g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self); - g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self); + g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); + g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); priv->search = photos_view_container_new (PHOTOS_WINDOW_MODE_SEARCH, _("Search")); gtk_stack_add_named (GTK_STACK (priv->stack), priv->search, "search"); model = photos_view_container_get_model (PHOTOS_VIEW_CONTAINER (priv->search)); - g_signal_connect_swapped (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self); - g_signal_connect_swapped (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self); + g_signal_connect_object (model, "row-inserted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); + g_signal_connect_object (model, "row-deleted", G_CALLBACK (photos_embed_row_changed), self, G_CONNECT_SWAPPED); priv->preview = photos_preview_view_new (GTK_OVERLAY (priv->stack_overlay)); gtk_stack_add_named (GTK_STACK (priv->stack), priv->preview, "preview"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-properties-dialog.c new/gnome-photos-3.18.2/src/photos-properties-dialog.c --- old/gnome-photos-3.18.1/src/photos-properties-dialog.c 2015-10-06 16:13:01.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-properties-dialog.c 2015-11-03 08:13:19.000000000 +0100 @@ -478,7 +478,7 @@ if (flash_w != NULL) { GtkWidget *flash_data; - gchar *flash_str; + gchar *flash_str = NULL; if (flash == PHOTOS_FLASH_OFF) flash_str = g_strdup (_("Off, did not fire")); @@ -490,7 +490,6 @@ str = g_quark_to_string (flash); g_warning ("Unknown value for nmm:flash: %s", str); - g_assert_not_reached (); } flash_data = gtk_label_new (flash_str); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-selection-toolbar.c new/gnome-photos-3.18.2/src/photos-selection-toolbar.c --- old/gnome-photos-3.18.1/src/photos-selection-toolbar.c 2015-10-06 16:13:01.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-selection-toolbar.c 2015-11-08 18:41:38.000000000 +0100 @@ -108,6 +108,7 @@ { PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data); PhotosSelectionToolbarPrivate *priv = self->priv; + GList *items = NULL; GList *selection; GList *l; @@ -119,14 +120,27 @@ { const gchar *urn = (gchar *) l->data; PhotosBaseItem *item; - gboolean favorite; item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (priv->item_mngr, urn)); + items = g_list_prepend (items, g_object_ref (item)); + } + + /* photos_base_item_set_favorite will emit info-updated signal while + * looping: there is a chance that the selection will get modified + * while we are iterating over it. To avoid this we make a copy of + * the selection and work on it. + */ + for (l = items; l != NULL; l = l->next) + { + PhotosBaseItem *item = PHOTOS_BASE_ITEM (l->data); + gboolean favorite; + favorite = photos_base_item_is_favorite (item); photos_base_item_set_favorite (item, !favorite); } photos_selection_controller_set_selection_mode (priv->sel_cntrlr, FALSE); + g_list_free_full (items, g_object_unref); } @@ -340,9 +354,8 @@ static void -photos_selection_toolbar_selection_changed (PhotosSelectionController *sel_cntrlr, gpointer user_data) +photos_selection_toolbar_selection_changed (PhotosSelectionToolbar *self) { - PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data); PhotosSelectionToolbarPrivate *priv = self->priv; GList *selection; @@ -358,14 +371,10 @@ static void -photos_selection_toolbar_selection_mode_changed (PhotosSelectionController *sel_cntrlr, - gboolean mode, - gpointer user_data) +photos_selection_toolbar_selection_mode_changed (PhotosSelectionToolbar *self, gboolean mode) { - PhotosSelectionToolbar *self = PHOTOS_SELECTION_TOOLBAR (user_data); - if (mode) - photos_selection_toolbar_selection_changed (sel_cntrlr, self); + photos_selection_toolbar_selection_changed (self); else gtk_revealer_set_reveal_child (GTK_REVEALER (self), FALSE); } @@ -494,14 +503,16 @@ priv->item_mngr = g_object_ref (state->item_mngr); priv->sel_cntrlr = photos_selection_controller_dup_singleton (); - g_signal_connect (priv->sel_cntrlr, - "selection-changed", - G_CALLBACK (photos_selection_toolbar_selection_changed), - self); - g_signal_connect (priv->sel_cntrlr, - "selection-mode-changed", - G_CALLBACK (photos_selection_toolbar_selection_mode_changed), - self); + g_signal_connect_object (priv->sel_cntrlr, + "selection-changed", + G_CALLBACK (photos_selection_toolbar_selection_changed), + self, + G_CONNECT_SWAPPED); + g_signal_connect_object (priv->sel_cntrlr, + "selection-mode-changed", + G_CALLBACK (photos_selection_toolbar_selection_mode_changed), + self, + G_CONNECT_SWAPPED); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-utils.c new/gnome-photos-3.18.2/src/photos-utils.c --- old/gnome-photos-3.18.1/src/photos-utils.c 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-utils.c 2015-11-08 18:43:12.000000000 +0100 @@ -237,7 +237,7 @@ GIcon * -photos_utils_create_symbolic_icon (const gchar *name, gint base_size) +photos_utils_create_symbolic_icon_for_scale (const gchar *name, gint base_size, gint scale) { GIcon *icon; GIcon *ret_val = NULL; @@ -246,6 +246,7 @@ GtkIconTheme *theme; GtkStyleContext *style; GtkWidgetPath *path; + cairo_surface_t *icon_surface = NULL; cairo_surface_t *surface; cairo_t *cr; gchar *symbolic_name; @@ -254,11 +255,14 @@ gint emblem_pos; gint emblem_size; gint total_size; + gint total_size_scaled; total_size = base_size / 2; + total_size_scaled = total_size * scale; emblem_size = bg_size - emblem_margin * 2; - surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, total_size, total_size); + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, total_size_scaled, total_size_scaled); + cairo_surface_set_device_scale (surface, (gdouble) scale, (gdouble) scale); cr = cairo_create (surface); style = gtk_style_context_new (); @@ -277,7 +281,7 @@ g_free (symbolic_name); theme = gtk_icon_theme_get_default(); - info = gtk_icon_theme_lookup_by_gicon (theme, icon, emblem_size, GTK_ICON_LOOKUP_FORCE_SIZE); + info = gtk_icon_theme_lookup_by_gicon_for_scale (theme, icon, emblem_size, scale, GTK_ICON_LOOKUP_FORCE_SIZE); g_object_unref (icon); if (info == NULL) @@ -289,14 +293,17 @@ if (pixbuf == NULL) goto out; - emblem_pos = total_size - emblem_size - emblem_margin; - gtk_render_icon (style, cr, pixbuf, emblem_pos, emblem_pos); + icon_surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, NULL); g_object_unref (pixbuf); - ret_val = G_ICON (gdk_pixbuf_get_from_surface (surface, 0, 0, total_size, total_size)); + emblem_pos = total_size - emblem_size - emblem_margin; + gtk_render_icon_surface (style, cr, icon_surface, emblem_pos, emblem_pos); + + ret_val = G_ICON (gdk_pixbuf_get_from_surface (surface, 0, 0, total_size_scaled, total_size_scaled)); out: g_object_unref (style); + cairo_surface_destroy (icon_surface); cairo_surface_destroy (surface); cairo_destroy (cr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-utils.h new/gnome-photos-3.18.2/src/photos-utils.h --- old/gnome-photos-3.18.1/src/photos-utils.h 2015-10-09 13:15:31.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-utils.h 2015-11-08 18:43:12.000000000 +0100 @@ -57,7 +57,7 @@ GdkPixbuf *photos_utils_create_pixbuf_from_node (GeglNode *node); -GIcon *photos_utils_create_symbolic_icon (const gchar *name, gint base_size); +GIcon *photos_utils_create_symbolic_icon_for_scale (const gchar *name, gint base_size, gint scale); gboolean photos_utils_create_thumbnail (GFile *file, GCancellable *cancellable, GError **error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-view-container.c new/gnome-photos-3.18.2/src/photos-view-container.c --- old/gnome-photos-3.18.1/src/photos-view-container.c 2015-10-09 18:55:42.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-view-container.c 2015-11-08 18:41:38.000000000 +0100 @@ -341,10 +341,18 @@ } action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-all"); - g_signal_connect_swapped (action, "activate", G_CALLBACK (photos_view_container_select_all), self); + g_signal_connect_object (action, + "activate", + G_CALLBACK (photos_view_container_select_all), + self, + G_CONNECT_SWAPPED); action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-none"); - g_signal_connect_swapped (action, "activate", G_CALLBACK (gd_main_view_unselect_all), priv->view); + g_signal_connect_object (action, + "activate", + G_CALLBACK (gd_main_view_unselect_all), + priv->view, + G_CONNECT_SWAPPED); g_signal_connect_object (priv->offset_cntrlr, "count-changed", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/src/photos-view-model.c new/gnome-photos-3.18.2/src/photos-view-model.c --- old/gnome-photos-3.18.1/src/photos-view-model.c 2015-10-12 12:25:08.000000000 +0200 +++ new/gnome-photos-3.18.2/src/photos-view-model.c 2015-11-08 18:41:38.000000000 +0100 @@ -46,6 +46,7 @@ struct _PhotosViewModelPrivate { + GHashTable *info_updated_ids; PhotosBaseManager *item_mngr; PhotosModeController *mode_cntrlr; PhotosOffsetController *offset_cntrlr; @@ -106,11 +107,7 @@ PhotosViewModelPrivate *priv = self->priv; if (priv->reset_count_id == 0) - priv->reset_count_id = g_timeout_add_full (G_PRIORITY_DEFAULT, - RESET_COUNT_TIMEOUT, - photos_view_model_reset_count_timeout, - g_object_ref (self), - g_object_unref); + priv->reset_count_id = g_timeout_add (RESET_COUNT_TIMEOUT, photos_view_model_reset_count_timeout, self); } @@ -213,10 +210,9 @@ static void -photos_view_model_object_removed (PhotosViewModel *self, GObject *object) +photos_view_model_remove_item (PhotosViewModel *self, PhotosBaseItem *item) { PhotosViewModelPrivate *priv = self->priv; - PhotosBaseItem *item = PHOTOS_BASE_ITEM (object); /* Update the count so that PhotosOffsetController has the correct * values. Otherwise things like loading more items and "No @@ -226,7 +222,7 @@ priv->oldest_mtime = G_MAXINT64; gtk_tree_model_foreach (GTK_TREE_MODEL (self), photos_view_model_item_removed_foreach, item); - g_object_set_data (object, priv->row_ref_key, NULL); + g_object_set_data (G_OBJECT (item), priv->row_ref_key, NULL); } @@ -249,7 +245,7 @@ is_collection = photos_base_item_is_collection (item); if (!is_collection && row_ref != NULL && active_collection == NULL) - photos_view_model_object_removed (self, G_OBJECT (item)); + photos_view_model_remove_item (self, item); else if (is_collection && row_ref == NULL && active_collection == NULL) photos_view_model_add_item (self, item); } @@ -259,7 +255,7 @@ is_favorite = photos_base_item_is_favorite (item); if (!is_favorite && row_ref != NULL && active_collection == NULL) - photos_view_model_object_removed (self, G_OBJECT (item)); + photos_view_model_remove_item (self, item); else if (is_favorite && row_ref == NULL && active_collection == NULL) photos_view_model_add_item (self, item); } @@ -269,7 +265,7 @@ is_collection = photos_base_item_is_collection (item); if (is_collection && row_ref != NULL) - photos_view_model_object_removed (self, G_OBJECT (item)); + photos_view_model_remove_item (self, item); else if (!is_collection && row_ref == NULL) photos_view_model_add_item (self, item); } @@ -298,11 +294,23 @@ GtkTreeRowReference *row_ref; gboolean is_collection; gboolean is_favorite; + const gchar *id; + gpointer data; + guint info_updated_id; row_ref = (GtkTreeRowReference *) g_object_get_data (G_OBJECT (item), priv->row_ref_key); if (row_ref != NULL) return; + id = photos_filterable_get_id (PHOTOS_FILTERABLE (item)); + data = g_hash_table_lookup (priv->info_updated_ids, id); + if (data != NULL) + { + info_updated_id = GPOINTER_TO_UINT (data); + g_signal_handler_disconnect (item, (gulong) info_updated_id); + g_hash_table_remove (priv->info_updated_ids, id); + } + active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr)); is_collection = photos_base_item_is_collection (item); is_favorite = photos_base_item_is_favorite (item); @@ -319,7 +327,34 @@ photos_view_model_add_item (self, item); out: - g_signal_connect_object (item, "info-updated", G_CALLBACK (photos_view_model_info_updated), self, 0); + info_updated_id = (guint) g_signal_connect_object (item, + "info-updated", + G_CALLBACK (photos_view_model_info_updated), + self, + 0); + g_hash_table_insert (priv->info_updated_ids, g_strdup (id), GUINT_TO_POINTER (info_updated_id)); +} + + +static void +photos_view_model_object_removed (PhotosViewModel *self, GObject *object) +{ + PhotosViewModelPrivate *priv = self->priv; + PhotosBaseItem *item = PHOTOS_BASE_ITEM (object); + const gchar *id; + gpointer data; + guint info_updated_id; + + photos_view_model_remove_item (self, item); + + id = photos_filterable_get_id (PHOTOS_FILTERABLE (item)); + data = g_hash_table_lookup (priv->info_updated_ids, id); + + g_return_if_fail (data != NULL); + + info_updated_id = GPOINTER_TO_UINT (data); + g_signal_handler_disconnect (item, (gulong) info_updated_id); + g_hash_table_remove (priv->info_updated_ids, id); } @@ -414,8 +449,10 @@ photos_view_model_finalize (GObject *object) { PhotosViewModel *self = PHOTOS_VIEW_MODEL (object); + PhotosViewModelPrivate *priv = self->priv; - g_free (self->priv->row_ref_key); + g_hash_table_unref (priv->info_updated_ids); + g_free (priv->row_ref_key); G_OBJECT_CLASS (photos_view_model_parent_class)->finalize (object); } @@ -465,6 +502,8 @@ gtk_list_store_set_column_types (GTK_LIST_STORE (self), sizeof (columns) / sizeof (columns[0]), columns); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self), PHOTOS_VIEW_MODEL_MTIME, GTK_SORT_DESCENDING); + priv->info_updated_ids = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + priv->item_mngr = g_object_ref (state->item_mngr); priv->mode_cntrlr = photos_mode_controller_dup_singleton (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gnome-photos-3.18.1/tests/Makefile.am new/gnome-photos-3.18.2/tests/Makefile.am --- old/gnome-photos-3.18.1/tests/Makefile.am 2014-09-09 17:45:51.000000000 +0200 +++ new/gnome-photos-3.18.2/tests/Makefile.am 2015-11-03 08:36:42.000000000 +0100 @@ -26,4 +26,4 @@ $(NULL) endif -include $(top_srcdir)/git.mk +-include $(top_srcdir)/git.mk
