diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/AppWindow.vala | 2 | ||||
| -rw-r--r-- | src/NaturalCollate.vala | 8 | ||||
| -rw-r--r-- | src/Photo.vala | 16 | ||||
| -rw-r--r-- | src/Resources.vala | 14 | ||||
| -rw-r--r-- | src/SlideshowPage.vala | 8 | ||||
| -rw-r--r-- | src/direct/DirectPhotoPage.vala | 14 | ||||
| -rw-r--r-- | src/direct/DirectWindow.vala | 17 | ||||
| -rw-r--r-- | src/library/LibraryWindow.vala | 2 | ||||
| -rw-r--r-- | src/photos/PhotoMetadata.vala | 11 | ||||
| -rw-r--r-- | src/plugins/StandardHostInterface.vala | 3 | ||||
| -rw-r--r-- | src/publishing/Publishing.vala | 2 | ||||
| -rw-r--r-- | src/publishing/PublishingUI.vala | 1 | 
12 files changed, 59 insertions, 39 deletions
| diff --git a/src/AppWindow.vala b/src/AppWindow.vala index 22b47c2..5c1496e 100644 --- a/src/AppWindow.vala +++ b/src/AppWindow.vala @@ -408,6 +408,8 @@ public abstract class AppWindow : PageWindow {      protected int pos_y = 0;      public AppWindow() { +        base(); +          // although there are multiple AppWindow types, only one may exist per-process          assert(instance == null);          instance = this; diff --git a/src/NaturalCollate.vala b/src/NaturalCollate.vala index 4adb027..6d38a08 100644 --- a/src/NaturalCollate.vala +++ b/src/NaturalCollate.vala @@ -20,7 +20,7 @@ private const unichar SUPERDIGIT = ':';  private const unichar NUM_SENTINEL = 0x2; // glib uses these, so do we  private const string  COLLATION_SENTINEL = "\x01\x01\x01"; -private static int read_number(owned string s, ref int byte_index) { +private static int read_number(owned string s, ref long byte_index) {      /*       * Given a string in the form [numerals]*[everythingelse]*       * returns the int value of the first block and increments index @@ -33,7 +33,7 @@ private static int read_number(owned string s, ref int byte_index) {      while (s.length != 0 && s.get_char(0).isdigit()) {          number = number*10;          number += s.get_char(0).digit_value(); -        int second_char = s.index_of_nth_char(1); +        var second_char = s.index_of_nth_char(1);          s = s.substring(second_char);          byte_index += second_char;      } @@ -56,7 +56,7 @@ public static string collate_key(owned string str) {      while (!eos) {          assert(str.validate()); -        int position = 0; +        long position = 0L;          while (!(str.get_char(position).to_string() in "0123456789")) {              // We only care about plain old 0123456789, aping what g_utf8_collate_key_for_filename does              position++; @@ -69,7 +69,7 @@ public static string collate_key(owned string str) {          str = str.substring(position);          eos = (str.length == 0); -        position = 0; +        position = 0L;          if (!eos) {              // We have some numbers to handle in front of us diff --git a/src/Photo.vala b/src/Photo.vala index 0d8e955..ae0f489 100644 --- a/src/Photo.vala +++ b/src/Photo.vala @@ -429,7 +429,7 @@ public abstract class Photo : PhotoSource, Dateable {                  // need to remove all transformations as they're keyed to the editable's                  // coordinate system -                internal_remove_all_transformations(false); +                remove_all_transformations(false);              }          } @@ -1519,7 +1519,7 @@ public abstract class Photo : PhotoSource, Dateable {              row.master = original_master;              row.master.copy_from(reimport_state.row.master);              if (!reimport_state.metadata_only) -                internal_remove_all_transformations(false); +                remove_all_transformations(false);          }          if (reimport_state.metadata != null) @@ -1596,7 +1596,7 @@ public abstract class Photo : PhotoSource, Dateable {              lock (row) {                  editable = reimport_state.backing_state;                  set_orientation(reimport_state.backing_state.original_orientation); -                internal_remove_all_transformations(false); +                remove_all_transformations(false);              }          } else {              set_orientation(reimport_state.backing_state.original_orientation); @@ -2820,11 +2820,7 @@ public abstract class Photo : PhotoSource, Dateable {          return committed;      } -    public void remove_all_transformations() { -        internal_remove_all_transformations(true); -    } -     -    private void internal_remove_all_transformations(bool notify) { +    public void remove_all_transformations(bool notify = true) {          bool is_altered = false;          lock (row) {              is_altered = PhotoTable.get_instance().remove_all_transformations(row.photo_id); @@ -3907,7 +3903,7 @@ public abstract class Photo : PhotoSource, Dateable {          // transformations are in the master's coordinate system, not the editable's ... don't           // notify photo is altered *yet* because update_editable will notify, and want to avoid           // stacking them up -        internal_remove_all_transformations(false); +        remove_all_transformations(false);          update_editable(false, file_format.create_reader(file.get_path()));      } @@ -4077,7 +4073,7 @@ public abstract class Photo : PhotoSource, Dateable {          }          if (remove_transformations) -            internal_remove_all_transformations(false); +            remove_all_transformations(false);          if (has_editable) {              notify_baseline_replaced(); diff --git a/src/Resources.vala b/src/Resources.vala index 8fabbe4..801305c 100644 --- a/src/Resources.vala +++ b/src/Resources.vala @@ -88,7 +88,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,      public const int ICON_FILTER_UNRATED_OR_BETTER_FIXED_SIZE = 16;      public const int ICON_ZOOM_SCALE = 16; -    public const string ICON_CAMERAS = "camera-photo"; +    public const string ICON_CAMERAS = "camera-photo-symbolic";      public const string ICON_EVENTS = "multiple-events-symbolic";      public const string ICON_ONE_EVENT = "one-event-symbolic";      public const string ICON_NO_EVENT = "no-event-symbolic"; @@ -1038,11 +1038,13 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,              debug("Failed to find icon %s in theme, falling back to resources", name);          } -        try { -            var path = "/org/gnome/Shotwell/icons/%s".printf(name); -            pixbuf = new Gdk.Pixbuf.from_resource(path); -        } catch (Error err) { -            critical("Unable to load icon %s: %s", name, err.message); +        if (pixbuf == null) { +            try { +                var path = "/org/gnome/Shotwell/icons/%s".printf(name); +                pixbuf = new Gdk.Pixbuf.from_resource(path); +            } catch (Error err) { +                critical("Unable to load icon %s: %s", name, err.message); +            }          }          if (pixbuf == null) diff --git a/src/SlideshowPage.vala b/src/SlideshowPage.vala index 18fef7f..9810236 100644 --- a/src/SlideshowPage.vala +++ b/src/SlideshowPage.vala @@ -340,6 +340,12 @@ class SlideshowPage : SinglePhotoPage {      public override bool key_press_event(Gdk.EventKey event) {          bool handled = true;          switch (Gdk.keyval_name(event.keyval)) { +            // Block activating the toolbar on key down +            // FIXME: Why is SinglePhotoPage not a PhotoPage which already does this? +            case "Down": +            case "KP_Down": +                ; +            break;              case "space":                  on_play_pause();              break; @@ -362,6 +368,7 @@ class SlideshowPage : SinglePhotoPage {          bool slideshow_playing = playing;          playing = false;          hide_toolbar(); +        suspend_cursor_hiding();          if (settings_dialog.run() == Gtk.ResponseType.OK) {              // sync with the config setting so it will persist @@ -375,6 +382,7 @@ class SlideshowPage : SinglePhotoPage {          }          settings_dialog.destroy(); +        restore_cursor_hiding();          playing = slideshow_playing;          timer.start();      } diff --git a/src/direct/DirectPhotoPage.vala b/src/direct/DirectPhotoPage.vala index 14b54bc..8eb2e3f 100644 --- a/src/direct/DirectPhotoPage.vala +++ b/src/direct/DirectPhotoPage.vala @@ -218,6 +218,12 @@ public class DirectPhotoPage : EditingHostPage {              fs.close();              return true; +        } else { +            if (get_container() is DirectWindow) { +                (get_container() as DirectWindow).do_fullscreen(); + +                return true; +            }          }          return base.on_double_click(event); @@ -295,7 +301,7 @@ public class DirectPhotoPage : EditingHostPage {          base.update_actions(selected_count, count);      } -    private bool check_ok_to_close_photo(Photo? photo) { +    private bool check_ok_to_close_photo(Photo? photo, bool notify = true) {          // Means we failed to load the photo for some reason. Do not block          // shutdown          if (photo == null) @@ -307,7 +313,7 @@ public class DirectPhotoPage : EditingHostPage {          if (drop_if_dirty) {              // need to remove transformations, or else they stick around in memory (reappearing              // if the user opens the file again) -            photo.remove_all_transformations(); +            photo.remove_all_transformations(notify);              return true;          } @@ -320,7 +326,7 @@ public class DirectPhotoPage : EditingHostPage {              _("Close _without Saving"));          if (response == Gtk.ResponseType.YES) -            photo.remove_all_transformations(); +            photo.remove_all_transformations(notify);          else if (response == Gtk.ResponseType.NO) {              if (is_writeable)                  save(photo.get_file(), 0, ScaleConstraint.ORIGINAL, Jpeg.Quality.HIGH, @@ -336,7 +342,7 @@ public class DirectPhotoPage : EditingHostPage {      }      public bool check_quit() { -        return check_ok_to_close_photo(get_photo()); +        return check_ok_to_close_photo(get_photo(), false);      }      protected override bool confirm_replace_photo(Photo? old_photo, Photo new_photo) { diff --git a/src/direct/DirectWindow.vala b/src/direct/DirectWindow.vala index e1cbf75..9eec5b1 100644 --- a/src/direct/DirectWindow.vala +++ b/src/direct/DirectWindow.vala @@ -8,6 +8,8 @@ public class DirectWindow : AppWindow {      private DirectPhotoPage direct_photo_page;      public DirectWindow(File file) { +	base(); +          direct_photo_page = new DirectPhotoPage(file);          direct_photo_page.get_view().items_altered.connect(on_photo_changed);          direct_photo_page.get_view().items_state_changed.connect(on_photo_changed); @@ -42,6 +44,11 @@ public class DirectWindow : AppWindow {              get_display_pathname(file.get_parent()), Resources.APP_TITLE);      } +    // Expose on_fullscreen publicly so we can call it from the DirectPhotoPage +    public void do_fullscreen() { +        on_fullscreen(); +    } +      protected override void on_fullscreen() {          File file = get_direct_page().get_current_file(); @@ -74,16 +81,6 @@ public class DirectWindow : AppWindow {          return (base.delete_event != null) ? base.delete_event(event) : false;      } -    public override bool button_press_event(Gdk.EventButton event) { -        if (event.type == Gdk.EventType.2BUTTON_PRESS) { -            on_fullscreen(); - -            return true; -        } -         -        return false; -    } -      public override bool key_press_event(Gdk.EventKey event) {          // check for an escape          if (Gdk.keyval_name(event.keyval) == "Escape") { diff --git a/src/library/LibraryWindow.vala b/src/library/LibraryWindow.vala index b9acb22..99a1c67 100644 --- a/src/library/LibraryWindow.vala +++ b/src/library/LibraryWindow.vala @@ -162,6 +162,8 @@ public class LibraryWindow : AppWindow {  #endif      public LibraryWindow(ProgressMonitor progress_monitor) { +        base(); +          // prep sidebar and add roots          sidebar_tree = new Sidebar.Tree(DND_TARGET_ENTRIES, Gdk.DragAction.ASK,              external_drop_handler); diff --git a/src/photos/PhotoMetadata.vala b/src/photos/PhotoMetadata.vala index 2c2d6c5..288a362 100644 --- a/src/photos/PhotoMetadata.vala +++ b/src/photos/PhotoMetadata.vala @@ -70,6 +70,8 @@ public class ACDSeeKeywordTransformer : KeywordTransformer {      }      public override Gee.List<string> transform (string input) throws Error { +        this.stack.clear(); +        this.result.clear();          var ctx = new MarkupParseContext (this.parser, 0, this, null);          ctx.parse (input, input.length); @@ -276,7 +278,11 @@ public class PhotoMetadata : MediaMetadata {          exiv2 = new GExiv2.Metadata();          exif = null; +#if NEW_GEXIV2_API +        exiv2.open_buf(buffer[0:length]); +#else          exiv2.open_buf(buffer, length); +#endif          exif = Exif.Data.new_from_data(buffer, length);          source_name = "<memory buffer %d bytes>".printf(length);      } @@ -285,8 +291,11 @@ public class PhotoMetadata : MediaMetadata {          exiv2 = new GExiv2.Metadata();          exif = null; -        exiv2.from_app1_segment(buffer.get_data(), (long) buffer.get_size()); +#if NEW_GEXIV2_API +        exiv2.from_app1_segment(buffer.get_data()); +#else          exif = Exif.Data.new_from_data(buffer.get_data(), buffer.get_size()); +#endif          source_name = "<app1 segment %zu bytes>".printf(buffer.get_size());      } diff --git a/src/plugins/StandardHostInterface.vala b/src/plugins/StandardHostInterface.vala index 857c8ff..d0f3ed4 100644 --- a/src/plugins/StandardHostInterface.vala +++ b/src/plugins/StandardHostInterface.vala @@ -26,9 +26,6 @@ public class StandardHostInterface : Object, Spit.HostInterface {              case "org.yorba.shotwell.publishing.facebook":                  return "facebook"; -            case "org.yorba.shotwell.publishing.picasa": -                return "picasa"; -                          case "org.yorba.shotwell.publishing.flickr":                  return "flickr"; diff --git a/src/publishing/Publishing.vala b/src/publishing/Publishing.vala index 6c30b91..455013c 100644 --- a/src/publishing/Publishing.vala +++ b/src/publishing/Publishing.vala @@ -9,9 +9,9 @@ namespace Publishing {  public void init() throws Error {      string[] core_ids = new string[0];      core_ids += "org.yorba.shotwell.publishing.facebook"; -    core_ids += "org.yorba.shotwell.publishing.picasa";      core_ids += "org.yorba.shotwell.publishing.flickr";      core_ids += "org.yorba.shotwell.publishing.youtube"; +    core_ids += "org.yorba.shotwell.publishing.gnome-photos";      Plugins.register_extension_point(typeof(Spit.Publishing.Service), _("Publishing"),          Resources.PUBLISH, core_ids); diff --git a/src/publishing/PublishingUI.vala b/src/publishing/PublishingUI.vala index 3d4f609..d3d4a69 100644 --- a/src/publishing/PublishingUI.vala +++ b/src/publishing/PublishingUI.vala @@ -527,6 +527,7 @@ public class PublishingDialog : Gtk.Dialog {      public void set_cancel_button_mode() {          close_cancel_button.set_label(_("_Cancel")); +        set_default(null);      }      public void lock_service() { | 
