Hello community, here is the log from the commit of package shotwell for openSUSE:Factory checked in at 2012-05-16 21:09:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/shotwell (Old) and /work/SRC/openSUSE:Factory/.shotwell.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shotwell", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/shotwell/shotwell.changes 2012-04-20 15:21:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.shotwell.new/shotwell.changes 2012-05-16 21:10:06.000000000 +0200 @@ -1,0 +2,12 @@ +Mon May 14 07:49:07 UTC 2012 - [email protected] + +- Update to version 0.12.3: + + Corrects an issue where tags could be inappropriately removed + from a library. + + Enhances support for AVCHD-capable cameras. + + Prevents a soft lockup that could occur when certain very dark + images were autoenhanced. + + Corrects an issue where pressing the zoom hotkeys in certain + parts of the application could cause a crash. + +------------------------------------------------------------------- Old: ---- shotwell-0.12.2.tar.bz2 New: ---- shotwell-0.12.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ shotwell.spec ++++++ --- /var/tmp/diff_new_pack.zQ9zxH/_old 2012-05-16 21:10:07.000000000 +0200 +++ /var/tmp/diff_new_pack.zQ9zxH/_new 2012-05-16 21:10:07.000000000 +0200 @@ -17,7 +17,7 @@ Name: shotwell -Version: 0.12.2 +Version: 0.12.3 Release: 0 Summary: Photo Manager for GNOME License: LGPL-2.1+ ++++++ shotwell-0.12.2.tar.bz2 -> shotwell-0.12.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/Makefile new/shotwell-0.12.3/Makefile --- old/shotwell-0.12.2/Makefile 2012-04-11 20:27:42.000000000 +0200 +++ new/shotwell-0.12.3/Makefile 2012-05-09 23:09:15.000000000 +0200 @@ -1,7 +1,7 @@ PROGRAM = shotwell PROGRAM_THUMBNAILER = shotwell-video-thumbnailer -VERSION = 0.12.2 +VERSION = 0.12.3 GETTEXT_PACKAGE = $(PROGRAM) BUILD_ROOT = 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/NEWS new/shotwell-0.12.3/NEWS --- old/shotwell-0.12.2/NEWS 2012-04-11 20:18:51.000000000 +0200 +++ new/shotwell-0.12.3/NEWS 2012-05-09 23:12:59.000000000 +0200 @@ -1,3 +1,15 @@ +Shotwell 0.12.3 - 9 May 2012 - "It was a million to one shot, Doc." +---------------------------------------------------------------------------- + + * Corrects an issue where tags could be inappropriately removed from a + library. + * Enhances support for AVCHD-capable cameras. + * Prevents a soft lockup that could occur when certain very dark images + were autoenhanced. + * Corrects an issue where pressing the zoom hotkeys in certain parts + of the application could cause a crash. + + Shotwell 0.12.2 - 9 April 2012 - "It's Made From Fusilli Pasta" ---------------------------------------------------------------------------- @@ -8,6 +20,7 @@ * Clarified several strings. * The application now recovers gracefully from corrupted tag data. + Shotwell 0.12.1 - 28 March 2012 - "Oh No, Not The Knuckle..." ---------------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/plugins/common/SqliteSupport.vala new/shotwell-0.12.3/plugins/common/SqliteSupport.vala --- old/shotwell-0.12.2/plugins/common/SqliteSupport.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/plugins/common/SqliteSupport.vala 2012-05-08 23:46:52.000000000 +0200 @@ -13,7 +13,7 @@ TYPESPEC } -public abstract class DatabaseTable { +public abstract class ImportableDatabaseTable { protected static Sqlite.Database db; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/plugins/shotwell-data-imports/FSpotDatabaseTable.vala new/shotwell-0.12.3/plugins/shotwell-data-imports/FSpotDatabaseTable.vala --- old/shotwell-0.12.2/plugins/shotwell-data-imports/FSpotDatabaseTable.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/plugins/shotwell-data-imports/FSpotDatabaseTable.vala 2012-05-08 23:46:52.000000000 +0200 @@ -9,7 +9,7 @@ /** * This class represents a generic F-Spot table. */ -public abstract class FSpotDatabaseTable<T> : DatabaseTable { +public abstract class FSpotDatabaseTable<T> : ImportableDatabaseTable { protected unowned Sqlite.Database fspot_db; protected FSpotTableBehavior<T> behavior; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/AppWindow.vala new/shotwell-0.12.3/src/AppWindow.vala --- old/shotwell-0.12.2/src/AppWindow.vala 2012-04-11 20:18:19.000000000 +0200 +++ new/shotwell-0.12.3/src/AppWindow.vala 2012-05-08 23:46:35.000000000 +0200 @@ -626,6 +626,9 @@ string? title = null, Gtk.Window? parent = null) { Gtk.MessageDialog dialog = new Gtk.MessageDialog.with_markup((parent != null) ? parent : get_instance(), Gtk.DialogFlags.MODAL, Gtk.MessageType.QUESTION, Gtk.ButtonsType.NONE, "%s", message); + // Occasionally, with_markup doesn't actually enable markup...? Force the issue. + dialog.set_markup(message); + dialog.use_markup = true; dialog.title = (title != null) ? title : Resources.APP_TITLE; dialog.add_buttons(affirmative, Gtk.ResponseType.YES, _("_Cancel"), Gtk.ResponseType.CANCEL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/ColorTransformation.vala new/shotwell-0.12.3/src/ColorTransformation.vala --- old/shotwell-0.12.2/src/ColorTransformation.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/src/ColorTransformation.vala 2012-05-08 20:31:09.000000000 +0200 @@ -1206,8 +1206,8 @@ float HIGH_KINK_MASS = 1.0f - HIGH_DISCARD_MASS; high_kink = 255; - while (histogram.get_cumulative_probability(high_kink) > HIGH_KINK_MASS) - high_kink--; + while ((histogram.get_cumulative_probability(high_kink) > HIGH_KINK_MASS) && (high_kink > 0)) + high_kink--; build_remap_table(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/Dialogs.vala new/shotwell-0.12.3/src/Dialogs.vala --- old/shotwell-0.12.2/src/Dialogs.vala 2012-04-11 20:18:19.000000000 +0200 +++ new/shotwell-0.12.3/src/Dialogs.vala 2012-05-08 23:46:35.000000000 +0200 @@ -1100,8 +1100,7 @@ private int minimum_on_screen_time_msec = 500; private ulong time_started; #if UNITY_SUPPORT - //UnityProgressBar: init - UnityProgressBar uniprobar = new UnityProgressBar(UnityProgressBarImportance.HIGH); + UnityProgressBar uniprobar = UnityProgressBar.get_instance(); #endif public ProgressDialog(Gtk.Window? owner, string text, Cancellable? cancellable = null) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/Resources.vala new/shotwell-0.12.3/src/Resources.vala --- old/shotwell-0.12.2/src/Resources.vala 2012-04-11 20:18:19.000000000 +0200 +++ new/shotwell-0.12.3/src/Resources.vala 2012-05-08 23:46:35.000000000 +0200 @@ -876,7 +876,7 @@ help_path +=anchor; } - string[] argv = new string[2]; + string[] argv = new string[3]; argv[0] = "gnome-help"; argv[1] = help_path; argv[2] = null; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/SearchFilter.vala new/shotwell-0.12.3/src/SearchFilter.vala --- old/shotwell-0.12.2/src/SearchFilter.vala 2012-04-11 20:18:19.000000000 +0200 +++ new/shotwell-0.12.3/src/SearchFilter.vala 2012-05-08 23:46:35.000000000 +0200 @@ -426,6 +426,7 @@ private bool has_photos = true; private bool has_videos = true; private bool has_raw = true; + private bool can_filter_by_stars = true; public signal void flagged_toggled(bool on); @@ -507,6 +508,8 @@ CheckerboardPage? new_tracked_page = new_page as CheckerboardPage; if (new_tracked_page != null) { + can_filter_by_stars = true; + Core.ViewTracker? tracker = new_tracked_page.get_view_tracker(); if (tracker is MediaViewTracker) { tracker.updated.connect(on_media_tracker_updated); @@ -526,6 +529,7 @@ has_photos = false; has_videos = false; has_raw = false; + can_filter_by_stars = false; update_sensitivities(); } @@ -565,14 +569,14 @@ Resources.ICON_FILTER_RAW : Resources.ICON_FILTER_RAW_DISABLED); bool allow_ratings = (SearchFilterCriteria.RATING & criteria) != 0; - set_action_sensitive("CommonDisplayRejectedOnly", allow_ratings); - set_action_sensitive("CommonDisplayRejectedOrHigher", allow_ratings); - set_action_sensitive("CommonDisplayUnratedOrHigher", allow_ratings); - set_action_sensitive("CommonDisplayOneOrHigher", allow_ratings); - set_action_sensitive("CommonDisplayTwoOrHigher", allow_ratings); - set_action_sensitive("CommonDisplayThreeOrHigher", allow_ratings); - set_action_sensitive("CommonDisplayFourOrHigher", allow_ratings); - set_action_sensitive("CommonDisplayFiveOrHigher", allow_ratings); + set_action_sensitive("CommonDisplayRejectedOnly", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayRejectedOrHigher", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayUnratedOrHigher", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayOneOrHigher", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayTwoOrHigher", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayThreeOrHigher", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayFourOrHigher", allow_ratings & can_filter_by_stars); + set_action_sensitive("CommonDisplayFiveOrHigher", allow_ratings & can_filter_by_stars); // Ticket #3343 - Don't disable the text field, even // when no searchable items are available. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/UnityProgressBar.vala new/shotwell-0.12.3/src/UnityProgressBar.vala --- old/shotwell-0.12.2/src/UnityProgressBar.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/src/UnityProgressBar.vala 2012-05-08 20:30:59.000000000 +0200 @@ -1,27 +1,33 @@ +/* Copyright 2010-2012 Yorba Foundation + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + #if UNITY_SUPPORT public class UnityProgressBar : Object { private static Unity.LauncherEntry l = Unity.LauncherEntry.get_for_desktop_id("shotwell.desktop"); private static UnityProgressBar? visible_uniprobar; - - private UnityProgressBarImportance importance; + private double progress; private bool visible; - - public UnityProgressBar(UnityProgressBarImportance importance) { - this.importance = importance; + + public static UnityProgressBar get_instance() { + if (visible_uniprobar == null) { + visible_uniprobar = new UnityProgressBar(); + } + + return visible_uniprobar; + } + + private UnityProgressBar() { progress = 0.0; visible = false; } ~UnityProgressBar () { - if (visible_uniprobar == this) { - reset_progress_bar(); - } - } - - public UnityProgressBarImportance get_importance () { - return importance; + reset_progress_bar(); } public double get_progress () { @@ -34,19 +40,7 @@ } private void update_visibility () { - if (this.visible) { - //already a progress bar set - //overwrite when more important - if (visible_uniprobar != null) { - if (visible_uniprobar.importance < this.importance || visible_uniprobar == this) { - set_progress_bar(this, progress); - } - } - //set; nothing else there - else { - set_progress_bar(this, progress); - } - } + set_progress_bar(this, progress); } public bool get_visible () { @@ -55,16 +49,16 @@ public void set_visible (bool visible) { this.visible = visible; - - //if not visible and currently displayed, remove Unitys progress bar - if (!visible && visible_uniprobar == this) + + if (!visible) { + //if not visible and currently displayed, remove Unity progress bar reset_progress_bar(); - - //update_visibility if this progress bar wants to be drawn - if (visible) - update_visibility(); + } else { + //update_visibility if this progress bar wants to be drawn + update_visibility(); + } } - + public void reset () { set_visible(false); progress = 0.0; @@ -86,9 +80,4 @@ } } -public enum UnityProgressBarImportance { - LOW, - MEDIUM, - HIGH -} #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/camera/ImportPage.vala new/shotwell-0.12.3/src/camera/ImportPage.vala --- old/shotwell-0.12.2/src/camera/ImportPage.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/src/camera/ImportPage.vala 2012-05-08 20:30:59.000000000 +0200 @@ -660,9 +660,9 @@ private ImportPageSearchViewFilter search_filter = new ImportPageSearchViewFilter(); private HideImportedViewFilter hide_imported_filter = new HideImportedViewFilter(); private CameraViewTracker tracker; + #if UNITY_SUPPORT - //UnityProgressBar: init - UnityProgressBar uniprobar = new UnityProgressBar(UnityProgressBarImportance.MEDIUM); + UnityProgressBar uniprobar = UnityProgressBar.get_instance(); #endif public enum RefreshResult { @@ -1140,13 +1140,43 @@ refresh_result = camera.get_storageinfo(&sifs, out count, spin_idle_context.context); if (refresh_result == GPhoto.Result.OK) { for (int fsid = 0; fsid < count; fsid++) { + // Check well-known video and image paths first to prevent accidental + // scanning of undesired directories (which can cause user annoyance with + // some smartphones or camera-equipped media players) + bool got_well_known_dir = false; + + // Check common paths for most primarily-still cameras, many (most?) smartphones if (check_directory_exists(fsid, "/", "DCIM")) { - if (!enumerate_files(fsid, "/DCIM", import_list)) - break; - } else if (check_directory_exists(fsid, "/", "dcim")) { - if (!enumerate_files(fsid, "/dcim", import_list)) - break; - } else { + enumerate_files(fsid, "/DCIM", import_list); + got_well_known_dir = true; + } + if (check_directory_exists(fsid, "/", "dcim")) { + enumerate_files(fsid, "/dcim", import_list); + got_well_known_dir = true; + } + + // Check common paths for AVCHD camcorders, primarily-still + // cameras that shoot .mts video files + if (check_directory_exists(fsid, "/PRIVATE/", "AVCHD")) { + enumerate_files(fsid, "/PRIVATE/AVCHD", import_list); + got_well_known_dir = true; + } + if (check_directory_exists(fsid, "/private/", "avchd")) { + enumerate_files(fsid, "/private/avchd", import_list); + got_well_known_dir = true; + } + if (check_directory_exists(fsid, "/", "AVCHD")) { + enumerate_files(fsid, "/AVCHD", import_list); + got_well_known_dir = true; + } + if (check_directory_exists(fsid, "/", "avchd")) { + enumerate_files(fsid, "/avchd", import_list); + got_well_known_dir = true; + } + + // Didn't find any of the common directories we know about + // already - try scanning from device root. + if (!got_well_known_dir) { if (!enumerate_files(fsid, "/", import_list)) break; } @@ -1154,7 +1184,7 @@ } clear_all_import_sources(); - + // Associate files (for RAW+JPEG) auto_match_raw_jpeg(import_list); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/core/ContainerSourceCollection.vala new/shotwell-0.12.3/src/core/ContainerSourceCollection.vala --- old/shotwell-0.12.2/src/core/ContainerSourceCollection.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/src/core/ContainerSourceCollection.vala 2012-05-08 20:20:42.000000000 +0200 @@ -174,7 +174,10 @@ Gee.Iterator<ContainerSource> iter = holding_tank.iterator(); while (iter.next()) { ContainerSource container = iter.get(); - if (!container.has_links()) { + + // By design, we no longer discard 'orphan' tags, that is, tags with zero media sources + // remaining, since empty tags are explicitly allowed to persist as of the 0.12 dev cycle. + if ((!container.has_links()) && !(container is Tag)) { iter.remove(); container.destroy_orphan(true); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/library/ImportQueuePage.vala new/shotwell-0.12.3/src/library/ImportQueuePage.vala --- old/shotwell-0.12.2/src/library/ImportQueuePage.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/src/library/ImportQueuePage.vala 2012-05-08 20:30:59.000000000 +0200 @@ -12,9 +12,9 @@ private BatchImport current_batch = null; private Gtk.ProgressBar progress_bar = new Gtk.ProgressBar(); private bool stopped = false; + #if UNITY_SUPPORT - //UnityProgressBar: init - UnityProgressBar uniprobar = new UnityProgressBar(UnityProgressBarImportance.HIGH); + UnityProgressBar uniprobar = UnityProgressBar.get_instance(); #endif public signal void batch_added(BatchImport batch_import); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/library/LibraryWindow.vala new/shotwell-0.12.3/src/library/LibraryWindow.vala --- old/shotwell-0.12.2/src/library/LibraryWindow.vala 2012-04-11 20:18:19.000000000 +0200 +++ new/shotwell-0.12.3/src/library/LibraryWindow.vala 2012-05-08 23:46:35.000000000 +0200 @@ -66,14 +66,7 @@ { MEDIA_LIST_MIME_TYPE, Gtk.TargetFlags.SAME_APP, TargetType.MEDIA_LIST }, { TAG_PATH_MIME_TYPE, Gtk.TargetFlags.SAME_WIDGET, TargetType.TAG_PATH } }; - - // special Yorba-selected sidebar background color for standard themes (humanity, - // clearlooks, etc.); dark themes use the theme's native background color - public static Gdk.RGBA SIDEBAR_STANDARD_BG_COLOR = parse_color("#EEE"); - - // Max brightness value to trigger SIDEBAR_STANDARD_BG_COLOR - public const uint16 STANDARD_COMPONENT_MINIMUM = 0xe000; - + // In fullscreen mode, want to use LibraryPhotoPage, but fullscreen has different requirements, // esp. regarding when the widget is realized and when it should first try and throw them image // on the page. This handles this without introducing lots of special cases in @@ -163,7 +156,7 @@ #if UNITY_SUPPORT //UnityProgressBar: init - UnityProgressBar uniprobar = new UnityProgressBar(UnityProgressBarImportance.LOW); + UnityProgressBar uniprobar = UnityProgressBar.get_instance(); #endif public LibraryWindow(ProgressMonitor progress_monitor) { @@ -1261,18 +1254,6 @@ notebook.set_show_tabs(false); notebook.set_show_border(false); - Gtk.Settings settings = Gtk.Settings.get_default(); - HashTable<string, Gdk.Color?> color_table = settings.color_hash; - Gdk.Color? base_color = color_table.lookup("base_color"); - if (base_color != null && (base_color.red > STANDARD_COMPONENT_MINIMUM && - base_color.green > STANDARD_COMPONENT_MINIMUM && - base_color.blue > STANDARD_COMPONENT_MINIMUM)) { - // if the current theme is a standard theme (as opposed to a dark theme), then - // use the specially-selected Yorba muted background color for the sidebar. - // otherwise, use the theme's native background color. - sidebar_tree.override_color(Gtk.StateFlags.NORMAL, SIDEBAR_STANDARD_BG_COLOR); - } - // put the sidebar in a scrolling window Gtk.ScrolledWindow scrolled_sidebar = new Gtk.ScrolledWindow(null, null); scrolled_sidebar.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shotwell-0.12.2/src/plugins/ManifestWidget.vala new/shotwell-0.12.3/src/plugins/ManifestWidget.vala --- old/shotwell-0.12.2/src/plugins/ManifestWidget.vala 2012-04-11 20:17:18.000000000 +0200 +++ new/shotwell-0.12.3/src/plugins/ManifestWidget.vala 2012-05-09 23:09:15.000000000 +0200 @@ -253,10 +253,10 @@ out celly)) return base.button_press_event(event); - // if the mouse event hit-point has an x-coordinate between ICON_SIZE and (2 * ICON_SIZE), - // then the event occurred inside the enable/disable checkbox; short-circuit return if - // cellx is not between ICON_SIZE and (2 * ICON_SIZE), otherwise proceed - if (cellx < ICON_SIZE || cellx > (2 * ICON_SIZE)) + // Perform custom hit testing as described above. The first cell in the column is offset + // from the left edge by whatever size the group description icon is allocated (including + // padding). + if (cellx < (ICON_SIZE + ICON_X_PADDING) || cellx > (2 * (ICON_X_PADDING + ICON_SIZE))) return base.button_press_event(event); Gtk.TreeIter iter; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
